package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.CargueDAO;
//import com.cs.beneficios.business.model.CargueVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.paoyer.administration.exception.AdministrationUserException;
import com.cs.paoyer.administration.util.AccessControl;
import com.cs.paoyer.common.exception.CommonUserException;
import com.cs.paoyer.common.exception.UserException;
import java.sql.SQLException;
import java.util.Collection;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

public class RegNoProcesadosAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
      ActionMessages messages = new ActionMessages();
      try{
           AccessControl access = new AccessControl();
           access.validateAccess(mapping,request,response);
           
           //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
		   ConnectionFactory cf = new ConnectionFactory();
           String lote = request.getParameter("code");
           String tipo = request.getParameter("tipo");
           try{
              CargueDAO objcargueDAO = new CargueDAO(cf);
              Collection regs = objcargueDAO.regNoProcesados(lote,tipo);
              cf.closeConnection(objcargueDAO.getConn());
              if(regs != null && regs.size() > 0) { 
                  request.setAttribute("regs",regs);
              }else request.setAttribute("msg","No hay registros con errores");
           }catch(SQLException e){
			System.err.println("/******** TDSUB - cwsub");
			e.printStackTrace();
			System.err.println("TDSUB - cwsub ********/");
            request.setAttribute("msg","Error de sql en CargueDAO");
           }
      }catch (UserException ue) 
      {
          messages.add("msgWarn",  new ActionMessage("loginForm.message."
                                        + ue.getExceptionVO().getId()));
          saveMessages(request, messages);
          if(ue.getExceptionVO().getId()==AdministrationUserException.ENDED_SESSION)
          {       
                response.sendRedirect(request.getContextPath()+"/index.jsp");
          }
          else if(ue.getExceptionVO().getId()==CommonUserException.NOT_ALLOWED_RESOURCE)
          {
              response.sendRedirect(request.getContextPath()+"/admin/tile/invalidatedResource.jsp");
          }
          else
          {
              return mapping.getInputForward();
          }
      }
  
    return mapping.findForward("success");
  }
}